%ifndef BOOT_MEMORY_ZEROMEMORY16
%define BOOT_MEMORY_ZEROMEMORY16
bits 16
; ZeroMemory16(PVOID pBase, WORD wLength)
%define pBase word [bp + 18]
%define wLength word [bp + 20]
Boot.Memory.ZeroMemory16:
Boot.Memory.ZeroMemory16.Initialize:
    pusha
    mov bp, sp
    mov di, pBase
    mov cx, wLength
Boot.Memory.ZeroMemory16.Loop:
    mov byte [di], 0
    inc di
    loop Boot.Memory.ZeroMemory16.Loop
Boot.Memory.ZeroMemory16.Return:
    popa
    ret
%undef pBase
%undef wLength
%endif